<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Repetier-Firmware: TemperatureController Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="icon128.png"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Repetier-Firmware
   &#160;<span id="projectnumber">1.0.0</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('class_temperature_controller.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="class_temperature_controller-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">TemperatureController Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p><code>#include &lt;<a class="el" href="_extruder_8h_source.html">Extruder.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a289f785053029a24e2a39d7b30620740"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_temperature_controller.html#a289f785053029a24e2a39d7b30620740">setTargetTemperature</a> (float target)</td></tr>
<tr class="separator:a289f785053029a24e2a39d7b30620740"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a79c13d188d2674206e7aa1528b5c36e8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_temperature_controller.html#a79c13d188d2674206e7aa1528b5c36e8">updateCurrentTemperature</a> ()</td></tr>
<tr class="separator:a79c13d188d2674206e7aa1528b5c36e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9750df5d014aabdcf5443c64d80d3ed5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_temperature_controller.html#a9750df5d014aabdcf5443c64d80d3ed5">updateTempControlVars</a> ()</td></tr>
<tr class="separator:a9750df5d014aabdcf5443c64d80d3ed5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a871cdfacf8a6ae0fa35c11ef4bdd0c08"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_temperature_controller.html#a871cdfacf8a6ae0fa35c11ef4bdd0c08">isAlarm</a> ()</td></tr>
<tr class="separator:a871cdfacf8a6ae0fa35c11ef4bdd0c08"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a97012c1fece2502e0d77b78c912453cb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_temperature_controller.html#a97012c1fece2502e0d77b78c912453cb">setAlarm</a> (bool on)</td></tr>
<tr class="separator:a97012c1fece2502e0d77b78c912453cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:add43bff47ecc898221c6971d580a6da2"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_temperature_controller.html#add43bff47ecc898221c6971d580a6da2">isDecoupleFull</a> ()</td></tr>
<tr class="separator:add43bff47ecc898221c6971d580a6da2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4c97dcbf3cee4d3ca9c97b0bf2c7e096"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_temperature_controller.html#a4c97dcbf3cee4d3ca9c97b0bf2c7e096">removeErrorStates</a> ()</td></tr>
<tr class="separator:a4c97dcbf3cee4d3ca9c97b0bf2c7e096"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab07eca9bb6f521dfe983e62573e5b474"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_temperature_controller.html#ab07eca9bb6f521dfe983e62573e5b474">isDecoupleFullOrHold</a> ()</td></tr>
<tr class="separator:ab07eca9bb6f521dfe983e62573e5b474"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad8798b69305f760cf954f90ccb7e8815"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_temperature_controller.html#ad8798b69305f760cf954f90ccb7e8815">setDecoupleFull</a> (bool on)</td></tr>
<tr class="separator:ad8798b69305f760cf954f90ccb7e8815"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa5bcd15bd23ae1ba0903dba4008510a2"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_temperature_controller.html#aa5bcd15bd23ae1ba0903dba4008510a2">isDecoupleHold</a> ()</td></tr>
<tr class="separator:aa5bcd15bd23ae1ba0903dba4008510a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8da9f29e7a62efeb126b4214d4524a53"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_temperature_controller.html#a8da9f29e7a62efeb126b4214d4524a53">setDecoupleHold</a> (bool on)</td></tr>
<tr class="separator:a8da9f29e7a62efeb126b4214d4524a53"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5f4f93ffc1474baac970e36d9928253f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_temperature_controller.html#a5f4f93ffc1474baac970e36d9928253f">startFullDecouple</a> (<a class="el" href="_h_a_l_8h.html#a5f255edd429b0abc92fae25c511d45a7">millis_t</a> &amp;t)</td></tr>
<tr class="separator:a5f4f93ffc1474baac970e36d9928253f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9af2265663c637d0aa72ab8f4e892986"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_temperature_controller.html#a9af2265663c637d0aa72ab8f4e892986">startHoldDecouple</a> (<a class="el" href="_h_a_l_8h.html#a5f255edd429b0abc92fae25c511d45a7">millis_t</a> &amp;t)</td></tr>
<tr class="separator:a9af2265663c637d0aa72ab8f4e892986"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a89e752c820471f3933e51d375b37f83d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_temperature_controller.html#a89e752c820471f3933e51d375b37f83d">stopDecouple</a> ()</td></tr>
<tr class="separator:a89e752c820471f3933e51d375b37f83d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1a2a9f31d246783fb9def4aab908da41"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_temperature_controller.html#a1a2a9f31d246783fb9def4aab908da41">isSensorDefect</a> ()</td></tr>
<tr class="separator:a1a2a9f31d246783fb9def4aab908da41"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:add1fc962af614ecc997961006684d58e"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_temperature_controller.html#add1fc962af614ecc997961006684d58e">isSensorDecoupled</a> ()</td></tr>
<tr class="separator:add1fc962af614ecc997961006684d58e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8d3312469fca2c5180ff4569aa0a0ff7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_h_a_l_8h.html#adfaa4526bb47342be47f89a9eb6b3bef">fast8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_temperature_controller.html#a8d3312469fca2c5180ff4569aa0a0ff7">errorState</a> ()</td></tr>
<tr class="separator:a8d3312469fca2c5180ff4569aa0a0ff7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0d677114f4f11106c66f11734fbdc9ee"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_temperature_controller.html#a0d677114f4f11106c66f11734fbdc9ee">isFilamentChange</a> ()</td></tr>
<tr class="separator:a0d677114f4f11106c66f11734fbdc9ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afb9cde45e09dc7561a724688c6e7748d"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_temperature_controller.html#afb9cde45e09dc7561a724688c6e7748d">isJammed</a> ()</td></tr>
<tr class="separator:afb9cde45e09dc7561a724688c6e7748d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af745e70b353a08984de417b4c5e33000"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_temperature_controller.html#af745e70b353a08984de417b4c5e33000">isSlowedDown</a> ()</td></tr>
<tr class="separator:af745e70b353a08984de417b4c5e33000"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8800853cfaee9f83d4f07053dbd601eb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_temperature_controller.html#a8800853cfaee9f83d4f07053dbd601eb">waitForTargetTemperature</a> ()</td></tr>
<tr class="separator:a8800853cfaee9f83d4f07053dbd601eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aef033788392eded999fb07b196958a5a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_temperature_controller.html#aef033788392eded999fb07b196958a5a">autotunePID</a> (float temp, uint8_t controllerId, int maxCycles, bool storeResult, int method)</td></tr>
<tr class="separator:aef033788392eded999fb07b196958a5a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abda83187db163e222125347f589d2245"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_temperature_controller.html#abda83187db163e222125347f589d2245">startPreheatTime</a> ()</td></tr>
<tr class="separator:abda83187db163e222125347f589d2245"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab81f45e17f64587a3c7f1a515668701a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_temperature_controller.html#ab81f45e17f64587a3c7f1a515668701a">resetPreheatTime</a> ()</td></tr>
<tr class="separator:ab81f45e17f64587a3c7f1a515668701a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a09b598e024f4977b2f5d4241e6ed3864"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_h_a_l_8h.html#a5f255edd429b0abc92fae25c511d45a7">millis_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_temperature_controller.html#a09b598e024f4977b2f5d4241e6ed3864">preheatTime</a> ()</td></tr>
<tr class="separator:a09b598e024f4977b2f5d4241e6ed3864"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:ac12ebf76f16ff2fa97add8deb1d74eae"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_temperature_controller.html#ac12ebf76f16ff2fa97add8deb1d74eae">resetAllErrorStates</a> ()</td></tr>
<tr class="separator:ac12ebf76f16ff2fa97add8deb1d74eae"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr class="memitem:ad0e0795208a19231c0d0342665a6859f"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_temperature_controller.html#ad0e0795208a19231c0d0342665a6859f">pwmIndex</a></td></tr>
<tr class="memdesc:ad0e0795208a19231c0d0342665a6859f"><td class="mdescLeft">&#160;</td><td class="mdescRight">pwm index for output control. 0-2 = <a class="el" href="class_extruder.html" title="Data to drive one extruder. ">Extruder</a>, 3 = Fan, 4 = Heated Bed  <a href="#ad0e0795208a19231c0d0342665a6859f">More...</a><br /></td></tr>
<tr class="separator:ad0e0795208a19231c0d0342665a6859f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0cffe01b8a37d4929e136047e5fd7e16"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_temperature_controller.html#a0cffe01b8a37d4929e136047e5fd7e16">sensorType</a></td></tr>
<tr class="memdesc:a0cffe01b8a37d4929e136047e5fd7e16"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type of temperature sensor.  <a href="#a0cffe01b8a37d4929e136047e5fd7e16">More...</a><br /></td></tr>
<tr class="separator:a0cffe01b8a37d4929e136047e5fd7e16"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa78849f835422c9b0ed7d126fb9b8830"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_temperature_controller.html#aa78849f835422c9b0ed7d126fb9b8830">sensorPin</a></td></tr>
<tr class="memdesc:aa78849f835422c9b0ed7d126fb9b8830"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pin to read extruder temperature.  <a href="#aa78849f835422c9b0ed7d126fb9b8830">More...</a><br /></td></tr>
<tr class="separator:aa78849f835422c9b0ed7d126fb9b8830"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8775ae4cbeb44e1e08a9941934257fbc"><td class="memItemLeft" align="right" valign="top">int8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_temperature_controller.html#a8775ae4cbeb44e1e08a9941934257fbc">heatManager</a></td></tr>
<tr class="memdesc:a8775ae4cbeb44e1e08a9941934257fbc"><td class="mdescLeft">&#160;</td><td class="mdescRight">How is temperature controlled. 0 = on/off, 1 = PID-Control, 3 = dead time control.  <a href="#a8775ae4cbeb44e1e08a9941934257fbc">More...</a><br /></td></tr>
<tr class="separator:a8775ae4cbeb44e1e08a9941934257fbc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9dd4f88e7c31637d5c4de705afe4c044"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_temperature_controller.html#a9dd4f88e7c31637d5c4de705afe4c044">currentTemperature</a></td></tr>
<tr class="memdesc:a9dd4f88e7c31637d5c4de705afe4c044"><td class="mdescLeft">&#160;</td><td class="mdescRight">Current temperature value read from sensor.  <a href="#a9dd4f88e7c31637d5c4de705afe4c044">More...</a><br /></td></tr>
<tr class="separator:a9dd4f88e7c31637d5c4de705afe4c044"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a37bc4ef1cfc35b1e331ca325b6d4e212"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_temperature_controller.html#a37bc4ef1cfc35b1e331ca325b6d4e212">currentTemperatureC</a></td></tr>
<tr class="memdesc:a37bc4ef1cfc35b1e331ca325b6d4e212"><td class="mdescLeft">&#160;</td><td class="mdescRight">Current temperature in degC.  <a href="#a37bc4ef1cfc35b1e331ca325b6d4e212">More...</a><br /></td></tr>
<tr class="separator:a37bc4ef1cfc35b1e331ca325b6d4e212"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3a67ce9c64e4b6d0aef4e816837cabd4"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_temperature_controller.html#a3a67ce9c64e4b6d0aef4e816837cabd4">targetTemperatureC</a></td></tr>
<tr class="memdesc:a3a67ce9c64e4b6d0aef4e816837cabd4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Target temperature in degC.  <a href="#a3a67ce9c64e4b6d0aef4e816837cabd4">More...</a><br /></td></tr>
<tr class="separator:a3a67ce9c64e4b6d0aef4e816837cabd4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a252c07078f9b074f7e4f09c1d8eaace3"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_temperature_controller.html#a252c07078f9b074f7e4f09c1d8eaace3">temperatureC</a></td></tr>
<tr class="memdesc:a252c07078f9b074f7e4f09c1d8eaace3"><td class="mdescLeft">&#160;</td><td class="mdescRight">For 1s updates temperature and last build a short time history.  <a href="#a252c07078f9b074f7e4f09c1d8eaace3">More...</a><br /></td></tr>
<tr class="separator:a252c07078f9b074f7e4f09c1d8eaace3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaf7422c4cba38338b34f5eae991a4bf7"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_temperature_controller.html#aaf7422c4cba38338b34f5eae991a4bf7">lastTemperatureC</a></td></tr>
<tr class="memdesc:aaf7422c4cba38338b34f5eae991a4bf7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Used to compute D errors.  <a href="#aaf7422c4cba38338b34f5eae991a4bf7">More...</a><br /></td></tr>
<tr class="separator:aaf7422c4cba38338b34f5eae991a4bf7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab8dd5a4010c2c2609384c6cfc4717270"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_temperature_controller.html#ab8dd5a4010c2c2609384c6cfc4717270">lastTemperatureUpdate</a></td></tr>
<tr class="memdesc:ab8dd5a4010c2c2609384c6cfc4717270"><td class="mdescLeft">&#160;</td><td class="mdescRight">Time in millis of the last temperature update.  <a href="#ab8dd5a4010c2c2609384c6cfc4717270">More...</a><br /></td></tr>
<tr class="separator:ab8dd5a4010c2c2609384c6cfc4717270"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00e6f51c3769456e523034bf4fdc721f"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_temperature_controller.html#a00e6f51c3769456e523034bf4fdc721f">tempIState</a></td></tr>
<tr class="memdesc:a00e6f51c3769456e523034bf4fdc721f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Temp. var. for PID computation.  <a href="#a00e6f51c3769456e523034bf4fdc721f">More...</a><br /></td></tr>
<tr class="separator:a00e6f51c3769456e523034bf4fdc721f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae354962d62f15241fe9b856858576318"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_temperature_controller.html#ae354962d62f15241fe9b856858576318">pidDriveMax</a></td></tr>
<tr class="memdesc:ae354962d62f15241fe9b856858576318"><td class="mdescLeft">&#160;</td><td class="mdescRight">Used for windup in PID calculation.  <a href="#ae354962d62f15241fe9b856858576318">More...</a><br /></td></tr>
<tr class="separator:ae354962d62f15241fe9b856858576318"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9bcec7ad65a05246cd326c2398dd6f0c"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_temperature_controller.html#a9bcec7ad65a05246cd326c2398dd6f0c">pidDriveMin</a></td></tr>
<tr class="memdesc:a9bcec7ad65a05246cd326c2398dd6f0c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Used for windup in PID calculation.  <a href="#a9bcec7ad65a05246cd326c2398dd6f0c">More...</a><br /></td></tr>
<tr class="separator:a9bcec7ad65a05246cd326c2398dd6f0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abdeb142903a42bab4cbfd578fd691b1e"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_temperature_controller.html#abdeb142903a42bab4cbfd578fd691b1e">pidPGain</a></td></tr>
<tr class="memdesc:abdeb142903a42bab4cbfd578fd691b1e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pgain (proportional gain) for PID temperature control [0,01 Units].  <a href="#abdeb142903a42bab4cbfd578fd691b1e">More...</a><br /></td></tr>
<tr class="separator:abdeb142903a42bab4cbfd578fd691b1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a84c1b6c51af3158b3f097d5860c43097"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_temperature_controller.html#a84c1b6c51af3158b3f097d5860c43097">pidIGain</a></td></tr>
<tr class="memdesc:a84c1b6c51af3158b3f097d5860c43097"><td class="mdescLeft">&#160;</td><td class="mdescRight">Igain (integral) for PID temperature control [0,01 Units].  <a href="#a84c1b6c51af3158b3f097d5860c43097">More...</a><br /></td></tr>
<tr class="separator:a84c1b6c51af3158b3f097d5860c43097"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae07d210b6a0f16bba13dd14cacc004f3"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_temperature_controller.html#ae07d210b6a0f16bba13dd14cacc004f3">pidDGain</a></td></tr>
<tr class="memdesc:ae07d210b6a0f16bba13dd14cacc004f3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dgain (damping) for PID temperature control [0,01 Units].  <a href="#ae07d210b6a0f16bba13dd14cacc004f3">More...</a><br /></td></tr>
<tr class="separator:ae07d210b6a0f16bba13dd14cacc004f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab44e4cccd2c4e0e49cbb72d7aba28789"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_temperature_controller.html#ab44e4cccd2c4e0e49cbb72d7aba28789">pidMax</a></td></tr>
<tr class="memdesc:ab44e4cccd2c4e0e49cbb72d7aba28789"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum PWM value, the heater should be set.  <a href="#ab44e4cccd2c4e0e49cbb72d7aba28789">More...</a><br /></td></tr>
<tr class="separator:ab44e4cccd2c4e0e49cbb72d7aba28789"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af77c3f9048f3aaf8c868d65a84d59a77"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_temperature_controller.html#af77c3f9048f3aaf8c868d65a84d59a77">tempIStateLimitMax</a></td></tr>
<tr class="separator:af77c3f9048f3aaf8c868d65a84d59a77"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a896ff6a891d8b52d7e114194d6e95830"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_temperature_controller.html#a896ff6a891d8b52d7e114194d6e95830">tempIStateLimitMin</a></td></tr>
<tr class="separator:a896ff6a891d8b52d7e114194d6e95830"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5c06fb6f269bb9abba01961d585242b9"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_temperature_controller.html#a5c06fb6f269bb9abba01961d585242b9">flags</a></td></tr>
<tr class="separator:a5c06fb6f269bb9abba01961d585242b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a62d5254e015d61af3e4f8611354f54cb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_h_a_l_8h.html#a5f255edd429b0abc92fae25c511d45a7">millis_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_temperature_controller.html#a62d5254e015d61af3e4f8611354f54cb">lastDecoupleTest</a></td></tr>
<tr class="memdesc:a62d5254e015d61af3e4f8611354f54cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Last time of decoupling sensor-heater test.  <a href="#a62d5254e015d61af3e4f8611354f54cb">More...</a><br /></td></tr>
<tr class="separator:a62d5254e015d61af3e4f8611354f54cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a66406d4824ff1e08d021f9cae8ab1dda"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_temperature_controller.html#a66406d4824ff1e08d021f9cae8ab1dda">lastDecoupleTemp</a></td></tr>
<tr class="memdesc:a66406d4824ff1e08d021f9cae8ab1dda"><td class="mdescLeft">&#160;</td><td class="mdescRight">Temperature on last test.  <a href="#a66406d4824ff1e08d021f9cae8ab1dda">More...</a><br /></td></tr>
<tr class="separator:a66406d4824ff1e08d021f9cae8ab1dda"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8d4e67effde3ba2d9009a1f2677d559a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_h_a_l_8h.html#a5f255edd429b0abc92fae25c511d45a7">millis_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_temperature_controller.html#a8d4e67effde3ba2d9009a1f2677d559a">decoupleTestPeriod</a></td></tr>
<tr class="memdesc:a8d4e67effde3ba2d9009a1f2677d559a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Time between setting and testing decoupling.  <a href="#a8d4e67effde3ba2d9009a1f2677d559a">More...</a><br /></td></tr>
<tr class="separator:a8d4e67effde3ba2d9009a1f2677d559a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8791a183c4e8ae20c9eb5c5998788df5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_h_a_l_8h.html#a5f255edd429b0abc92fae25c511d45a7">millis_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_temperature_controller.html#a8791a183c4e8ae20c9eb5c5998788df5">preheatStartTime</a></td></tr>
<tr class="memdesc:a8791a183c4e8ae20c9eb5c5998788df5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Time (in milliseconds) when heat up was started.  <a href="#a8791a183c4e8ae20c9eb5c5998788df5">More...</a><br /></td></tr>
<tr class="separator:a8791a183c4e8ae20c9eb5c5998788df5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab7151f07795829ef81d90f690846d270"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_temperature_controller.html#ab7151f07795829ef81d90f690846d270">preheatTemperature</a></td></tr>
<tr class="separator:ab7151f07795829ef81d90f690846d270"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p><a class="el" href="class_temperature_controller.html">TemperatureController</a> manages one heater-temperature sensor loop. You can have up to 4 loops allowing pid/bang bang for up to 3 extruder and the heated bed. </p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="aef033788392eded999fb07b196958a5a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aef033788392eded999fb07b196958a5a">&#9670;&nbsp;</a></span>autotunePID()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void TemperatureController::autotunePID </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>temp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>controllerId</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>maxCycles</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>storeResult</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>method</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a8d3312469fca2c5180ff4569aa0a0ff7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8d3312469fca2c5180ff4569aa0a0ff7">&#9670;&nbsp;</a></span>errorState()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="_h_a_l_8h.html#adfaa4526bb47342be47f89a9eb6b3bef">fast8_t</a> TemperatureController::errorState </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a871cdfacf8a6ae0fa35c11ef4bdd0c08"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a871cdfacf8a6ae0fa35c11ef4bdd0c08">&#9670;&nbsp;</a></span>isAlarm()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool TemperatureController::isAlarm </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="add43bff47ecc898221c6971d580a6da2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#add43bff47ecc898221c6971d580a6da2">&#9670;&nbsp;</a></span>isDecoupleFull()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool TemperatureController::isDecoupleFull </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="ab07eca9bb6f521dfe983e62573e5b474"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab07eca9bb6f521dfe983e62573e5b474">&#9670;&nbsp;</a></span>isDecoupleFullOrHold()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool TemperatureController::isDecoupleFullOrHold </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="aa5bcd15bd23ae1ba0903dba4008510a2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa5bcd15bd23ae1ba0903dba4008510a2">&#9670;&nbsp;</a></span>isDecoupleHold()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool TemperatureController::isDecoupleHold </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a0d677114f4f11106c66f11734fbdc9ee"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0d677114f4f11106c66f11734fbdc9ee">&#9670;&nbsp;</a></span>isFilamentChange()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool TemperatureController::isFilamentChange </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="afb9cde45e09dc7561a724688c6e7748d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afb9cde45e09dc7561a724688c6e7748d">&#9670;&nbsp;</a></span>isJammed()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool TemperatureController::isJammed </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="add1fc962af614ecc997961006684d58e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#add1fc962af614ecc997961006684d58e">&#9670;&nbsp;</a></span>isSensorDecoupled()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool TemperatureController::isSensorDecoupled </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a1a2a9f31d246783fb9def4aab908da41"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1a2a9f31d246783fb9def4aab908da41">&#9670;&nbsp;</a></span>isSensorDefect()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool TemperatureController::isSensorDefect </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="af745e70b353a08984de417b4c5e33000"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af745e70b353a08984de417b4c5e33000">&#9670;&nbsp;</a></span>isSlowedDown()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool TemperatureController::isSlowedDown </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a09b598e024f4977b2f5d4241e6ed3864"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a09b598e024f4977b2f5d4241e6ed3864">&#9670;&nbsp;</a></span>preheatTime()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="_h_a_l_8h.html#a5f255edd429b0abc92fae25c511d45a7">millis_t</a> TemperatureController::preheatTime </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a4c97dcbf3cee4d3ca9c97b0bf2c7e096"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4c97dcbf3cee4d3ca9c97b0bf2c7e096">&#9670;&nbsp;</a></span>removeErrorStates()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void TemperatureController::removeErrorStates </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="ac12ebf76f16ff2fa97add8deb1d74eae"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac12ebf76f16ff2fa97add8deb1d74eae">&#9670;&nbsp;</a></span>resetAllErrorStates()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void TemperatureController::resetAllErrorStates </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="ab81f45e17f64587a3c7f1a515668701a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab81f45e17f64587a3c7f1a515668701a">&#9670;&nbsp;</a></span>resetPreheatTime()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void TemperatureController::resetPreheatTime </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a97012c1fece2502e0d77b78c912453cb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a97012c1fece2502e0d77b78c912453cb">&#9670;&nbsp;</a></span>setAlarm()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void TemperatureController::setAlarm </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>on</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="ad8798b69305f760cf954f90ccb7e8815"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad8798b69305f760cf954f90ccb7e8815">&#9670;&nbsp;</a></span>setDecoupleFull()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void TemperatureController::setDecoupleFull </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>on</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a8da9f29e7a62efeb126b4214d4524a53"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8da9f29e7a62efeb126b4214d4524a53">&#9670;&nbsp;</a></span>setDecoupleHold()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void TemperatureController::setDecoupleHold </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>on</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a289f785053029a24e2a39d7b30620740"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a289f785053029a24e2a39d7b30620740">&#9670;&nbsp;</a></span>setTargetTemperature()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void TemperatureController::setTargetTemperature </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>target</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a5f4f93ffc1474baac970e36d9928253f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5f4f93ffc1474baac970e36d9928253f">&#9670;&nbsp;</a></span>startFullDecouple()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void TemperatureController::startFullDecouple </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="_h_a_l_8h.html#a5f255edd429b0abc92fae25c511d45a7">millis_t</a> &amp;&#160;</td>
          <td class="paramname"><em>t</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a9af2265663c637d0aa72ab8f4e892986"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9af2265663c637d0aa72ab8f4e892986">&#9670;&nbsp;</a></span>startHoldDecouple()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void TemperatureController::startHoldDecouple </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="_h_a_l_8h.html#a5f255edd429b0abc92fae25c511d45a7">millis_t</a> &amp;&#160;</td>
          <td class="paramname"><em>t</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="abda83187db163e222125347f589d2245"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abda83187db163e222125347f589d2245">&#9670;&nbsp;</a></span>startPreheatTime()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void TemperatureController::startPreheatTime </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a89e752c820471f3933e51d375b37f83d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a89e752c820471f3933e51d375b37f83d">&#9670;&nbsp;</a></span>stopDecouple()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void TemperatureController::stopDecouple </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a79c13d188d2674206e7aa1528b5c36e8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a79c13d188d2674206e7aa1528b5c36e8">&#9670;&nbsp;</a></span>updateCurrentTemperature()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void TemperatureController::updateCurrentTemperature </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a9750df5d014aabdcf5443c64d80d3ed5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9750df5d014aabdcf5443c64d80d3ed5">&#9670;&nbsp;</a></span>updateTempControlVars()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void TemperatureController::updateTempControlVars </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a8800853cfaee9f83d4f07053dbd601eb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8800853cfaee9f83d4f07053dbd601eb">&#9670;&nbsp;</a></span>waitForTargetTemperature()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void TemperatureController::waitForTargetTemperature </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="a9dd4f88e7c31637d5c4de705afe4c044"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9dd4f88e7c31637d5c4de705afe4c044">&#9670;&nbsp;</a></span>currentTemperature</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int16_t TemperatureController::currentTemperature</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Current temperature value read from sensor. </p>

</div>
</div>
<a id="a37bc4ef1cfc35b1e331ca325b6d4e212"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a37bc4ef1cfc35b1e331ca325b6d4e212">&#9670;&nbsp;</a></span>currentTemperatureC</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float TemperatureController::currentTemperatureC</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Current temperature in degC. </p>

</div>
</div>
<a id="a8d4e67effde3ba2d9009a1f2677d559a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8d4e67effde3ba2d9009a1f2677d559a">&#9670;&nbsp;</a></span>decoupleTestPeriod</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="_h_a_l_8h.html#a5f255edd429b0abc92fae25c511d45a7">millis_t</a> TemperatureController::decoupleTestPeriod</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Time between setting and testing decoupling. </p>

</div>
</div>
<a id="a5c06fb6f269bb9abba01961d585242b9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5c06fb6f269bb9abba01961d585242b9">&#9670;&nbsp;</a></span>flags</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint8_t TemperatureController::flags</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a8775ae4cbeb44e1e08a9941934257fbc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8775ae4cbeb44e1e08a9941934257fbc">&#9670;&nbsp;</a></span>heatManager</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int8_t TemperatureController::heatManager</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>How is temperature controlled. 0 = on/off, 1 = PID-Control, 3 = dead time control. </p>

</div>
</div>
<a id="a66406d4824ff1e08d021f9cae8ab1dda"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a66406d4824ff1e08d021f9cae8ab1dda">&#9670;&nbsp;</a></span>lastDecoupleTemp</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float TemperatureController::lastDecoupleTemp</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Temperature on last test. </p>

</div>
</div>
<a id="a62d5254e015d61af3e4f8611354f54cb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a62d5254e015d61af3e4f8611354f54cb">&#9670;&nbsp;</a></span>lastDecoupleTest</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="_h_a_l_8h.html#a5f255edd429b0abc92fae25c511d45a7">millis_t</a> TemperatureController::lastDecoupleTest</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Last time of decoupling sensor-heater test. </p>

</div>
</div>
<a id="aaf7422c4cba38338b34f5eae991a4bf7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaf7422c4cba38338b34f5eae991a4bf7">&#9670;&nbsp;</a></span>lastTemperatureC</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float TemperatureController::lastTemperatureC</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Used to compute D errors. </p>

</div>
</div>
<a id="ab8dd5a4010c2c2609384c6cfc4717270"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab8dd5a4010c2c2609384c6cfc4717270">&#9670;&nbsp;</a></span>lastTemperatureUpdate</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t TemperatureController::lastTemperatureUpdate</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Time in millis of the last temperature update. </p>

</div>
</div>
<a id="ae07d210b6a0f16bba13dd14cacc004f3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae07d210b6a0f16bba13dd14cacc004f3">&#9670;&nbsp;</a></span>pidDGain</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float TemperatureController::pidDGain</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Dgain (damping) for PID temperature control [0,01 Units]. </p>

</div>
</div>
<a id="ae354962d62f15241fe9b856858576318"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae354962d62f15241fe9b856858576318">&#9670;&nbsp;</a></span>pidDriveMax</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint8_t TemperatureController::pidDriveMax</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Used for windup in PID calculation. </p>

</div>
</div>
<a id="a9bcec7ad65a05246cd326c2398dd6f0c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9bcec7ad65a05246cd326c2398dd6f0c">&#9670;&nbsp;</a></span>pidDriveMin</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint8_t TemperatureController::pidDriveMin</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Used for windup in PID calculation. </p>

</div>
</div>
<a id="a84c1b6c51af3158b3f097d5860c43097"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a84c1b6c51af3158b3f097d5860c43097">&#9670;&nbsp;</a></span>pidIGain</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float TemperatureController::pidIGain</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Igain (integral) for PID temperature control [0,01 Units]. </p>

</div>
</div>
<a id="ab44e4cccd2c4e0e49cbb72d7aba28789"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab44e4cccd2c4e0e49cbb72d7aba28789">&#9670;&nbsp;</a></span>pidMax</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint8_t TemperatureController::pidMax</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Maximum PWM value, the heater should be set. </p>

</div>
</div>
<a id="abdeb142903a42bab4cbfd578fd691b1e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abdeb142903a42bab4cbfd578fd691b1e">&#9670;&nbsp;</a></span>pidPGain</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float TemperatureController::pidPGain</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Pgain (proportional gain) for PID temperature control [0,01 Units]. </p>

</div>
</div>
<a id="a8791a183c4e8ae20c9eb5c5998788df5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8791a183c4e8ae20c9eb5c5998788df5">&#9670;&nbsp;</a></span>preheatStartTime</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="_h_a_l_8h.html#a5f255edd429b0abc92fae25c511d45a7">millis_t</a> TemperatureController::preheatStartTime</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Time (in milliseconds) when heat up was started. </p>

</div>
</div>
<a id="ab7151f07795829ef81d90f690846d270"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab7151f07795829ef81d90f690846d270">&#9670;&nbsp;</a></span>preheatTemperature</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int16_t TemperatureController::preheatTemperature</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="ad0e0795208a19231c0d0342665a6859f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad0e0795208a19231c0d0342665a6859f">&#9670;&nbsp;</a></span>pwmIndex</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint8_t TemperatureController::pwmIndex</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>pwm index for output control. 0-2 = <a class="el" href="class_extruder.html" title="Data to drive one extruder. ">Extruder</a>, 3 = Fan, 4 = Heated Bed </p>

</div>
</div>
<a id="aa78849f835422c9b0ed7d126fb9b8830"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa78849f835422c9b0ed7d126fb9b8830">&#9670;&nbsp;</a></span>sensorPin</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint8_t TemperatureController::sensorPin</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Pin to read extruder temperature. </p>

</div>
</div>
<a id="a0cffe01b8a37d4929e136047e5fd7e16"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0cffe01b8a37d4929e136047e5fd7e16">&#9670;&nbsp;</a></span>sensorType</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint8_t TemperatureController::sensorType</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Type of temperature sensor. </p>

</div>
</div>
<a id="a3a67ce9c64e4b6d0aef4e816837cabd4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3a67ce9c64e4b6d0aef4e816837cabd4">&#9670;&nbsp;</a></span>targetTemperatureC</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float TemperatureController::targetTemperatureC</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Target temperature in degC. </p>

</div>
</div>
<a id="a252c07078f9b074f7e4f09c1d8eaace3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a252c07078f9b074f7e4f09c1d8eaace3">&#9670;&nbsp;</a></span>temperatureC</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float TemperatureController::temperatureC</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>For 1s updates temperature and last build a short time history. </p>

</div>
</div>
<a id="a00e6f51c3769456e523034bf4fdc721f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a00e6f51c3769456e523034bf4fdc721f">&#9670;&nbsp;</a></span>tempIState</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float TemperatureController::tempIState</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Temp. var. for PID computation. </p>

</div>
</div>
<a id="af77c3f9048f3aaf8c868d65a84d59a77"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af77c3f9048f3aaf8c868d65a84d59a77">&#9670;&nbsp;</a></span>tempIStateLimitMax</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float TemperatureController::tempIStateLimitMax</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a896ff6a891d8b52d7e114194d6e95830"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a896ff6a891d8b52d7e114194d6e95830">&#9670;&nbsp;</a></span>tempIStateLimitMin</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float TemperatureController::tempIStateLimitMin</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>src/ArduinoAVR/Repetier/<a class="el" href="_extruder_8h_source.html">Extruder.h</a></li>
<li>src/ArduinoAVR/Repetier/<a class="el" href="_extruder_8cpp.html">Extruder.cpp</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="class_temperature_controller.html">TemperatureController</a></li>
    <li class="footer">Generated on Tue Sep 19 2017 18:54:02 for Repetier-Firmware by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
  </ul>
</div>
</body>
</html>
